package com.quanyan.stadium.service.commonComponent;

import com.quanyan.stadium.entity.TbGameMqMsgLog;
import com.quanyan.stadium.entity.vo.StadiumNotifyMsg;

/**
 * Created by xiao.xiao on 2016/7/21.
 *
 * 运动场MQ日志逻辑处理
 */
public interface GameMQLog {

   /**
    *   自动化处理异常消息
    *
    * */
    void operateExceptionMQ();

    /**
     * 纪录MQ发送日志,更新消息的状态未发送
     *
     * */
    void initMQLog(TbGameMqMsgLog tbGameMqMsgLog);

    /**
     * 根据msgId校验,获取当条记录
     *
     * */
    TbGameMqMsgLog getTbGameMqMsgLogByMsgId(String msgKeys);


    /**
     * 根据msgId校验,更新状态为消费, 且完成
     *
     * */
    void updateMqFinishByMsgId(String msgKeys);

    /**
     * 根据msgId校验,更新未完成
     *
     * */
    void updateNotifyFinishByMsgId(String msgKeys);

    /**
     * 根据msgId校验,当前消息是否被处理完毕
     *
     * true 消息被处理, false未被处理
     *
     * */
    boolean isConsumerFinish(String msgKeys);

    /**
     * 根据msgId获取
     *
     * */
    StadiumNotifyMsg getStadiumMsgModelByMsgId(String msgId) throws Exception;


}
